AWS BackupでVSSスナップショットに失敗した際に確認する点

AWS BackupでVSSスナップショットに失敗した際に確認する点

Clock Icon2024.03.07

困っていた内容

AWS BackupでWindows Volume Shadow Copy Services(VSS)のバックアップを試みたものの、ステータスが「問題ありで完了」と表示され、VSSスナップショットが取得できませんでした。

AWS Backupのバックアップジョブのエラー内容は以下の通りでした。

WindowsVSS Backup attempt failed because of insufficient privileges to perform this operation.

前提

プライベートサブネット内に配置されたEC2インスタンスが、VPCエンドポイントを介して各AWSサービスと通信する環境を想定しています。また、VSSに対応したアプリケーションがインストールされていることも前提とします。

VSSスナップショットの取得プロセスは、AWS Backupがバックアップを開始すると、Systems Manager Run CommandでEC2に対して、SSMドキュメントのAWSEC2-CreateVssSnapshotを実行し、スナップショットを取得する流れです。

引用

確認すべき点

エラーメッセージをもとに問題を解決するのが一般的ですが、今回はVSSスナップショットを実行する上で、最低限インフラ側で確認すべきポイントをまとめました。

以下にそれぞれのポイントについて説明します。

  1. マネージドインスタンスであるか
  2. EC2に、VSSスナップショットのための権限が存在するか
  3. VSSのコンポーネントがインストール済みか
  4. AWS BackupでWindows VSSを有効化しているか
  5. VPCエンドポイントが存在しているか

マネージドインスタンスであるか

対象のEC2がマネージドインスタンスであるか確認します。

AWSマネジメントコンソールのSSMのフリートマネージャーから、[ノードの状態]で確認できます。

[実行中]であれば、マネージドインスタンスですが、[停止しました]であれば、アンマネージドインスタンスです。

アンマネージドインスタンスの場合は、以下の記事を参考に環境を確認・修正します。

確認すべき主な項目は以下の通りです。

  • SSMエージェントが起動しているか
  • EC2インスタンスには、SSM実行権限があるか
  • SSMへの通信経路として、VPCエンドポイントが存在しているか
  • セキュリティグループのアウトバウンドでHTTPSを許可しているか

EC2にVSSスナップショットの権限が存在するか

 

SSM Run Commandを使用して、SSMドキュメントのAWSEC2-CreateVssSnapshotを実行するためには、以下のIAMポリシーがEC2インスタンスに適用されている必要があります。

追記:マネージドポリシーAWSEC2VssSnapshotPolicyが用意されたので、手動で作成するのではなくこれを適用しましょう。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": [
                "arn:aws:ec2:*::snapshot/*",
                "arn:aws:ec2:*::image/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstanceAttribute",
                "ec2:CreateSnapshot",
                "ec2:CreateSnapshots",
                "ec2:CreateImage",
                "ec2:DescribeImages",
                "ec2:DescribeSnapshots"
            ],
            "Resource": "*"
        }
    ]
}

IAMポリシーの権限を制限したい場合は、以下のドキュメントを参照してください。

VSSのコンポーネントがインストール済みか

VSSスナップショットを実行するには、EC2に VSS コンポーネントをインストールする必要があります。

VSSスナップショットを取得する方法は、AWS Backupだけでなく、Amazon Data Lifecycle Manager やSSM Run CommandなどのAWSサービスで取得する方法があります。

各AWSサービスによってインストール方法は異なりますが、AWS Backupの場合、手動でインストールします。

インストール方法とインストール済みかどうかの確認手順は、以下をご参照下さい。

AWS BackupでWindows VSSを有効化しているか

AWS Backupでバックアップを実行する際は、オンデマンドやバックアッププランなどの方法がありますが、どの方法を使用してもVSSの設定を有効にする必要があります。

以下にチェックをします。

VPCエンドポイントが存在しているか

以下のVPCエンドポイントが必要です。

  • com.amazonaws.region.ssm
  • com.amazonaws.region.ec2messages
  • com.amazonaws.region.ssmmessages
  • com.amazonaws.region.ec2
  • com.amazonaws.region.s3

マネージドインスタンスが存在する場合、以下の3つのVPCエンドポイントは作成済みのはずです。

  • com.amazonaws.region.ssm
  • com.amazonaws.region.ec2messages
  • com.amazonaws.region.ssmmessages

AWS BackupでVSSスナップショットを作成する場合、上記に加え、EC2サービスへの通信経路として、以下のVPCエンドポイントが必要です。

  • com.amazonaws.region.ec2

EC2 VPCエンドポイントが存在しない場合、EBSボリュームの呼び出しが失敗し、SSMコマンドの実行が失敗する原因となります。

今回のエラーは、このエンドポイントが不足していたために発生しました。

AWS BackupやAmazon EC2(および Amazon EBS)のAWSドキュメントには、EC2エンドポイントが必要の記載がなく、SSMのドキュメントにのみ記載があったため、注意が必要です。

SSM の Runcommand を利用して、VSSのコンポーネントをインストールする場合、インストールに必要なマニフェストファイルを取得するため、SSM エージェントから AWS が管理する S3 バケットにアクセスできる必要があります。そのため、S3のVPCエンドポイントも必要です。

他の要件

他にシステム要件やサポートされていないEC2インスタンスタイプ、サポートされているOSバージョンなどもありますので、詳細は以下をご参考ください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.